# INF 8007 lab 1 - Mikael Guillemot et Thibaut Stimpfling 
# Une connection internet est requise pour que ce scrip fonctionne correctement.
import urllib

if __name__ == '__main__':
    # recuperation du fichier a analyser
    # data = file('col-chabert.txt')
    
    # recuperation a partir du web
    data = urllib.urlopen('http://www.cours.polymtl.ca/inf8007/Tp/20121/col-chabert.txt')
    
    mots = 0 
    syllabes = 0
    
    # On peut maintenant mettre en forme le texte brut
    # On retire les espaces/points du debut/fin
    # On remplace l'ensemble des passage a la ligne, "-" et "'" par des espaces
    text = data.read().replace("\n", " ").replace("'", " ").replace("-", " ").strip(" ").strip(".") 
    
    # On divise le texte en une liste constituee de chacune des phrases
    p = text.split(".")
    # On en deduit le nombre de phrases via la longueur de la liste
    nphrases = len(p)

    for line in p:
        # Pour chaque entree de la liste on retire les espaces de debut/fin
        # et on la decoupe en une sous liste contentant les mots de la phrase
        m = line.strip(" ").split(" ")
        # On somme dans chacune des chaines le nombre de mots
        mots += len(m)
        # On parcours chacun des mots et l'on additionne le nombre de syllabes total contenue                                
        for s in m:
            syllabes += (1 + s.count("/"))    
    
    # On calcul alors l'indice de lisibilite Flesch-Kincaid 
    fre = 206.835 - 1.015 * mots / nphrases - 84.6 * syllabes / mots
    # Affichag du resultat et des variables du calcul
    print "nombre de phrase : " + str(nphrases)
    print "nombre de mots : %d" % mots
    print "nombre de syllabes : %d" % syllabes
    print "FRE : " + str(fre)
